Systems and methods of displaying cruise line pricing data

ABSTRACT

In one embodiment, systems and methods of comparing pricing information may commence with a user access the cruise selling and booking system to search for cruise packages that meet a customer&#39;s preferences. The user may utilize the cruise selling and booking system to select a set of pricing options for which the customer may qualify. The user may then view detailed pricing information that corresponds to the set of pricing options in one or more of the available price matrices.

RELATED APPLICATIONS

[0001] This application claims the benefit of U.S. ProvisionalApplication No. 60/168,871 filed Dec. 3, 1999, the disclosure of whichis hereby incorporated by reference. In addition, this application is acontinuation-in-part of U.S. patent application filed concurrently andentitled “SYSTEMS AND METHODS OF ON-LINE BOOKING OF CRUISES,” internalreference number TRAVL.002A, which is hereby incorporated by reference.

FIELD OF THE INVENTION

[0002] The present systems and methods relate generally to the field ofon-line price comparisons and in particular concern applicationsdesigned to facilitate cruise price comparisons, reservations, booking,and customer management by travel agents as well as individualcustomers.

BACKGROUND

[0003] The growth of the cruise industry has created an increase in thenumber of passenger cruise lines that sail each year. Each cruise lineoffers a variety of cruise packages, and the cruise packages varydepending on destination, sailing date, cruise ship, cabin category,excursions, special discounts, and so forth. While such variety offersgreat selection to potential customers, finding the cruise package thatbest fits the customer's budget and preferences is often a difficulttask. As a result, travel agents spend large amounts of time and energysorting through the myriad of cruise information to find cruises thatare of interest to the customer.

[0004] One common problem is that conventional approaches make itdifficult to analyze cruise package pricing information namely becausethere is a large amount of pricing data associated with each cruisepackage. For example, a cruise package's pricing data may be based onvarying factors such as cabin type, cabin location, number of personsper cabin, group block discounts, and so forth. Sorting through suchdata is difficult and arduous.

[0005] Another common problem is that the cruise package pricinginformation is constantly changing. As occupancy levels change for eachcruise ship, the price data may vary to reflect the changes. Forexample, a cruise ship with a low occupancy rate may reduce prices totry and encourage sales; whereas a cruise ship with a high occupancyrate may increase its prices to reflect the high demand. Additionally, acruise ship set to sail in a short amount of time may release availablecabins at reduced rates to attempt to fill the vacancies. This constantchanging of price data makes it difficult to find accurate cruisepackage pricing information.

[0006] An additional problem is that travel agents spend large amountsof time determining the preferences of each individual customer, findingcruise packages that meets the customer's needs, and booking the cruisepackage. A travel agent spends, on average, well over one hour with eachcustomer manually sifting through piles of paper documentation and isconstantly on the phone with cruise lines to get current information,such as availability and pricing.

[0007] Thus, the large amount of data coupled with the constant changingof the prices makes it difficult and time consuming to retrieve,analyze, and compare various cruise packages.

SUMMARY OF THE INVENTION

[0008] One embodiment of the present invention is a method of presentingcruise pricing information for display by a plurality of web browserprograms, wherein the method utilizes a cruise web server environment toelectronically communicate via a data communications network with aplurality of remote users using the web browser programs and the cruisepricing information includes real-time pricing and availability data.The method comprises receiving a selected cruise sailing from a remoteuser's web browser program, identifying rate options stored in anelectronic cruise line database that correspond to the selected cruisesailing, and sending the rate options to the remote user's web browserprogram. The method also comprises receiving a set of selected rateoptions from the remote user's web browser program and identifying cabinpricing categories stored in the electronic cruise line database thatcorrespond to the selected cruise sailing and the set of selected rateoptions. The method further comprises obtaining cruise price informationfrom the electronic cruise line database that corresponds to the cabinpricing categories and preparing cruise price information for display ina price summary as part of an electronic document by the remote user'sweb browser.

[0009] Another embodiment of the present invention is a method offiltering cruise pricing information for display to a remote user's webbrowser program utilizing a cruise web server environment toelectronically communicate with a the remote user's web browser programvia a data communications network. The method comprises receiving aselected cruise sailing from the remote user's web browser program,identifying rate options stored in an electronic database thatcorrespond to the selected cruise sailing, and sending the rate optionsto the remote user's web browser program for display as an electronicdocument. The method also comprises receiving a set of selected rateoptions from the remote user's web browser program and using the set ofselected rate options to retrieve pricing information from theelectronic database that corresponds to the selected cruise sailing andto formulate a query that filters the pricing information based at leastupon the selected rate options.

[0010] An additional embodiment of the present invention is a method ofrequesting cruise price information using a web browser program toelectronically communicate with a remote cruise web server system via adata communications network, wherein the cruise price informationincludes real-time pricing and availability data. The method comprisessending a first request for information on a cruise sailing to theremote cruise web server system and receiving a price matrix display ofcruise price information corresponding to the cruise sailing from theremote cruise web server system, wherein the price matrix display isdisplayed in the web browser program as an electronic document.

[0011] Another embodiment of the present invention is a method ofrequesting cruise price information using a web browser program toelectronically communicate with a remote cruise web server system via adata communications network. The method comprises sending a firstrequest for information on a cruise sailing to the remote cruise webserver system and receiving a set of rate options corresponding to thecruise sailing from the remote cruise web server system. The method alsocomprises sending a selection of rate options from the set of rateoptions and receiving a price matrix display of cruise price informationcorresponding to the cruise sailing from the remote cruise web serversystem, wherein the cruise price information corresponds to theselection of rate options and the price matrix display is displayed inthe web browser program as an electronic document.

[0012] An additional embodiment of the present invention is a method offiltering cruise price information using a web browser program toelectronically communicate with a remote cruise web server system via adata communications network. The method comprises sending a firstrequest for information on a cruise sailing to the remote cruise webserver system, receiving a set of rate options corresponding to thecruise sailing from the remote cruise web server system and wherein theset of rate options are formatted for display as an electronic documentby the web browser program. The method also comprises selecting aselection of rate options from the set of rate options and sending theselection of rate options to the remote cruise web server system.

[0013] Another embodiment of the present invention is a method of usinga computer to enable a remote user to compare cruise package pricinginformation from a cruise booking web server system, wherein the remoteuser electronically communicates with the cruise booking web serversystem using a web browser program via a data communications network andat least a portion of the cruise package pricing information includesreal-time pricing and availability data. The method comprises receivinga request for cruise price information for at least two cruises from theremote user's web browser program, preparing the cruise priceinformation for display in an electronic document that includes a pricesummary matrix, and sending the price summary matrix to the remoteuser's web browser program.

[0014] An additional embodiment of the present invention is a networknode in a network comprising a user node having a browser programcoupled to the network, the user node providing requests for informationon the network. The network node comprises a cruise booking noderesponsive to a request for cruise price information for at least twocruises from the user node wherein the cruise booking node provides theuser node with a price summary of the cruise price information.

[0015] Another embodiment of the present invention is a system fordisplaying cruise price information implemented in a web serverenvironment wherein a plurality of remote users communicate with thesystem via a data communications network using web browser programs. Thesystem comprises an electronically stored data structure of cruise priceinformation wherein the cruise price information includes informationfrom different cruise lines, a program module configured to receiverequests for cruise information from a remote user's web browserprogram, and a program module configured to obtain cruise priceinformation from the electronically stored data structure based at leastupon a price summary request. The system also comprises a program moduleconfigured to prepare cruise price information for a display as a pricesummary in an electronic document and a program module for outputtingthe prepared cruise price information to the remote user's web browserprogram.

[0016] An additional embodiment of the present invention is a method foranalyzing cruise package pricing category information utilizing a cruiseweb server environment to electronically communicate via a datacommunications network with a plurality of remote users using webbrowser programs. The method comprises receiving a set of rate optionsfrom a remote user's web browser program, obtaining cruise packageinformation relating to the set of rate options from an electronicdatabase of cruise pricing information, and outputting the cruisepackage information in a pricing table for display by the remote user'sweb browser program.

[0017] Another embodiment of the present invention is a network node ina network comprising a user node having a browser program coupled to thenetwork, the user node providing requests for information on thenetwork. The network node comprises a cruise booking node responsive toa request from the user node, wherein the cruise booking node queries anelectronic database of cruise information for cruise package informationthat relates to a set of rate options received from said user node andforwards the cruise package information to the user node.

[0018] An additional embodiment of the present invention is a system foranalyzing cruise package information implemented in a web serverenvironment wherein a plurality of remote users utilize web browserprograms to electronically communicate with the system via a datacommunications network. The system comprises an electronically storeddata structure of cruise price information wherein the cruise priceinformation includes information from different cruise lines and aprogram module configured to receive a set of rate options from a remoteuser's web browser program. The system also comprises a program moduleconfigured to obtain real-time cruise price information from theelectronically stored data structure, wherein the obtained real-timecruise price information relates to the set of rate options and aprogram module for outputting cruise package information in a pricesummary for display by the remote user's web browser program.

[0019] Another embodiment of the present invention is a system forcomparing cruise package pricing options implemented in a web serverenvironment wherein a plurality of remote users utilize web browserprograms to electronically communicate with the system via a datacommunications network. The system comprises a cruise sailing selectionsoftware component configured to receive a request for cruise pricinginformation for a selected sailing from a remote user's web browserprogram and a pricing options software component configured to searchfor a set of pricing options that correspond to the selected sailing inan electronic database of cruise information, to send the set of pricingoptions to the remote user's web browser program, and to receive a setof selected pricing options from the remote user's web browser program.The system also comprises a pricing category software componentconfigured to search for cruise pricing information in the electronicdatabase of cruise information, wherein the cruise pricing informationrelates to the set of selected pricing options and a display softwarecomponent configured to process and format the cruise pricinginformation for display in a pricing matrix by the remote user's webbrowser program, wherein the pricing matrix is organized at least inpart by the pricing categories.

[0020] An additional embodiment of the present invention is a system forcomparing cruise package pricing options implemented in conjunction witha web browser program, wherein the web browser program electronicallycommunicates with a remote cruise web server via a data communicationsnetwork. The system comprises a cruise sailing selection softwarecomponent configured to send requests for real-time cruise pricinginformation to the remote cruise web server, wherein the real-timecruise pricing information is organized into pricing categories, apricing options selection software component configured to send requeststo the remote cruise web server for filtering the cruise pricinginformation based at least upon a set of selected pricing options, and adisplay software component configured to receive the requested filtered,real-time cruise pricing information from the remote cruise web serverand to display the filtered, realtime cruise pricing information usingthe web browser program in a pricing matrix, wherein the pricing matrixis organized at least in part by the pricing categories.

[0021] Another embodiment of the present invention is a method ofpresenting cruise pricing information user's web browser programutilizing a cruise web server environment to electronically communicatewith a the remote user's web browser program via a data communicationsnetwork. The method comprises means for receiving a selected cruisesailing from a remote user's web browser program, means for identifyingrate options stored in an electronic database that correspond to theselected cruise sailing, and means for sending the rate options to theremote user's web browser program for display as an electronic document.The method also comprises means for receiving a set of selected rateoptions from the remote user's web browser program and means foridentifying cabin pricing categories stored in the electronic databasethat correspond to the selected cruise sailing and the set of selectedrate options. The method further comprises means for obtaining cruiseprice information from the electronic database that corresponds to thecabin pricing categories and means for preparing cruise priceinformation for display by the remote user's web browser program inprice summary.

[0022] An additional embodiment of the present invention is a method ofrequesting cruise price information using a web browser program toelectronically communicate with a remote cruise web server system via adata communications network. The method comprises means for sending afirst request for information on a cruise sailing to the remote cruiseweb server system and means for receiving a set of rate optionscorresponding to the cruise sailing from the remote cruise web serversystem, wherein the set of rate options are formatted for display as anelectronic document by the web browser program. The method alsocomprises means for sending a selection of rate options from the set ofrate options to the remote cruise web server and means for receiving aprice matrix display of cruise price information corresponding to thecruise sailing from the remote cruise web server system, wherein thecruise price information corresponds to the selection of rate options.

[0023] For purposes of summarizing the invention, certain aspects,advantages, and novel features of the invention are described herein. Itis to be understood that not necessarily all such advantages may beachieved in accordance with any particular embodiment of the invention.Those skilled in the art will recognize that the invention may beembodied or carried out in a manner that achieves one advantage or groupof advantages as taught herein without necessarily achieving otheradvantages as may be taught or suggested herein.

BRIEF DESCRIPTION OF THE DRAWINGS

[0024] These and other features will now be described with reference tothe drawings summarized below. These drawings and the associateddescription are provided to illustrate embodiments of the invention andnot to limit the scope of the invention. Throughout the drawings,reference numbers are re-used to indicate correspondence amongreferenced elements. In addition, the first digit of each referencenumber indicates the figure in which the element first appears.

[0025]FIG. 1 illustrates a high-level block diagram of one embodiment ofthe present invention.

[0026]FIG. 2A illustrates a high-level block diagram of one embodimentof the present invention.

[0027]FIG. 2B illustrates a high-level block diagram of an additionalembodiment of the present invention.

[0028]FIG. 3A illustrates a high-level block diagram of one embodimentof the present invention.

[0029]FIG. 3B illustrates a high-level block diagram of an additionalembodiment of the present invention.

[0030]FIG. 4 illustrates a high-level block diagram of a pricecomparison module.

[0031]FIG. 5 illustrates one embodiment of a pricing options display.

[0032]FIG. 6 illustrates one embodiment of a pricing matrix.

[0033]FIG. 7 illustrates an additional embodiment of a pricing matrix.

[0034]FIG. 8 illustrates an additional embodiment of a pricing matrix.

[0035]FIG. 9 illustrates one embodiment of a flow chart of a pricingoptions selection process.

[0036]FIG. 10 illustrates one embodiment of a flow chart of a pricematrix process.

DETAILED DESCRIPTION

[0037] Systems and methods which represent various embodiments andexample applications of the invention will now be described withreference to the drawings. Variations to the systems and methods whichrepresent other embodiments will also be described. In one disclosedembodiment, the systems and methods are used to provide pricinginformation and is described in the context of a cruise selling andbooking system. The inventors contemplate that the present invention isnot limited by the type of environment in which the pricing informationis provided and that other types of environments may be used, such as,for example, a real estate system, an airline travel system, a carrental system, a car sales system, as well as any other type of systemthat sells and/or provides pricing information about various productsand/or services. The figures and descriptions, however, relate toembodiments of the invention wherein the pricing information relates tocruise packages.

[0038] The present invention relates to systems and method for comparingmultiple sets of pricing information. One embodiment of the inventionincludes a system for displaying subsets of pricing information in tableformat wherein the pricing information may be readily compared withother sets of data.

[0039] One benefit of one embodiment is that users may select among avariety of pricing options permitting users to narrow the range ofpricing information which is displayed. In some instances, a particularcustomer may not qualify for certain pricing options and thus, suchoptions may be excluded from the pricing display.

[0040] Another benefit of one embodiment is that users are presentedwith a price matrix of relevant pricing data. The users may selectpricing options for which the customer may qualify and are presentedwith corresponding pricing information for the selected pricing optionsin a discrete price matrix. The price matrix displays two or more setsof pricing data enabling the users to compare the details of the pricingdata.

[0041] An additional benefit of one embodiment it that the users mayview various types of price matrices depending on the individualcustomer and/or the amount of data.

[0042] A further benefit of one embodiment is that as the pricingoptions, prices, and availability change, the changes are reflected inthe user's displays. The user is presented with up-to-date, currentinformation.

[0043] An additional benefit of one embodiment is that the customer isable to find and book cruises in a more efficient manner saving thetravel agent and/or the customer time. The cruise selling and bookingsystem provides a tool for readily accessing up-to-date, accurate cruiseinformation without spending the large amount of time often requiredwhen telephoning the cruise lines one-by-one to collect cruiseinformation and to book a cruise.

[0044] In one embodiment, these features are integrated into a cruiseselling and booking system that assists agents and customers withfinding cruises that meet the customers' preferences. Furthermore, thecruise selling and booking system facilitates the ability of thecustomers and agents to compare accurately the various cruise pricingdata.

I. Overview

[0045] In one embodiment, the systems and methods may be used in thecontext of a cruise selling and booking system 110. FIG. 1 illustratesthe cruise selling and booking system 110 of one embodiment wherein aplurality of customers, agents, and cruise lines interact with a cruiseselling and booking system 110 via communication mediums 120 such as theInternet 125. Cruise lines may interact directly with the cruise sellingand booking system 110 and/or via a cruise line interface system 130that stores information for one or more cruise lines. The cruise sellingand booking system 110, in the illustrated embodiment, provides aninteractive tool for compiling, reviewing, and processing informationobtained from the cruise lines, customers, and agents. The customer isprovided with information about various cruises packages and may book acruise package utilizing components of the cruise selling and bookingsystem 110 through interaction with an agent.

[0046] Using the agent computer 240, as illustrated in FIG. 2A, theagent accesses the components of the cruise selling and booking system110 to find information about the customer, to provide the customer withinformation about cruise sailings from the cruise line database 234, andto book cruise packages as desired by the customer. Additionally, theagent may select various pricing options for which the customerqualifies and then view the cruise pricing information that correspondsto the selected pricing options using one or more of the price matrices.

[0047] In one embodiment, a customer may also access the cruise sellingand booking system 110 without necessarily interacting with an agent asillustrated in FIG. 2B. For example, a customer may access the cruiseselling and booking system 110 via a web based service by utilizing astandard web browser on his own computer to connect to the cruiseselling and booking system 110 web page. In one embodiment, should thecustomer desire the assistance of an agent, the cruise selling andbooking system 110 may store the information entered by the customer inthe database collection 230. An agent with access to the cruise sellingand booking system 110 may subsequently retrieve the information. Thisfeature provides improved customer/agent interactivity by saving thecustomers from repeating information which was previously stored in thecruise selling and booking system 110 to each agent with whom theyinteract. As it is recognized that both customers and agents may accessthe cruise selling booking system, the term “users” will be used hereinto refer to customers and/or agents.

[0048] In one embodiment, a system and method of comparing pricinginformation may commence with a user accessing the cruise selling andbooking system 110 to search for cruise packages that meet a customer'spreferences. The user may utilize the cruise selling and booking system110 to select a set of pricing options for which the customer mayqualify. The user may then view detailed pricing information thatcorresponds to the set of pricing options in one or more of theavailable price matrices.

[0049] Pricing options, also referred to as rate options, are therepresentative pricing categories that a user may select for thecustomer. These pricing options may include discounts associated withpackage deals for air and extended stay vacations as well as otherincentive packages that a customer may select prior to booking. Otherexamples include local resident discounts, senior discounts, childtraveling rates, weekend getaway rates, group rates, and so forth. Eachcruise line has a variety of pricing options that set the prices for themultiple categories of cabins of the various cruise sailings and cruiseships. Travel agents use the pricing options along with other pricinginformation to find the best rate for the customers while at the sametime maximizing their own commission. Due to the large number ofpossible pricing options for each of the multiple cabin categories, itis often useful for the agent to limit the pricing information of eachsailing to a smaller subset of information based on the customer'sprofile and preferences. In one embodiment, the number of pricingoptions that may be selected may be restricted (e.g. to four or five).In another embodiment, the pricing options presented to the user mayreflect current availability of the cabins and/or cabin categories suchthat if a pricing option has expired or has been used up, the pricingoption is not presented to a user.

[0050] Price matrices, also referred to as cruise detail displays,display information for the categories of each cruise sailing allowingthe user to select individual categories as well as limit the display toselected categories by filtering out excess information. The pricematrices display prices for the available cabin categories of thedesignated sailings and the selected pricing options. The informationmay include real-time data such that as the prices are changing, theprices presented to the user reflect the changes.

[0051] In one embodiment, the price matrices may be adjusted, byreducing the number of viewed items and/or displaying additionaldetailed information regarding a specific sailing. Furthermore, in oneembodiment, the price matrices include features that give the useraccess to more detailed information about the categories or thesailings. This information may include, for example, locations ofcabins, lounges, and entertainment on any selected ship. In oneembodiment, the user may switch between a variety of price matrices suchas, for example, a price matrix with the “best price” information, aprice matrix with detailed information, a price matrix with airfareinformation, and so forth.

II. Cruise Selling and Booking System

[0052] An overview of one embodiment of a cruise selling and bookingsystem 110 is shown in FIG. 2A. In the exemplary system, a customercommunicates with an agent via telephone and the agent uses a computer(hereinafter “agent computer 240”) to connect to the Internet 125 tocommunicate with the cruise selling and booking system 110. While thefigure illustrates communication between the agent and customer viatelephone, it is recognized that the communication between the customerand the agent may take any of a number of forms including in-personconversations, mailed correspondence, e-mail, facsimile, and so forth.Additionally, the customer may use a computer (hereinafter “customercomputer 250”) to interact with the agent through online methods whichmay include email correspondence, live “chat” methods, dedicatedsoftware programs designed to facilitate online communication, and thelike.

[0053] In one embodiment, the cruise selling and booking system 110includes a server component 210, a cruise selling and booking component220, and a database collection 230. In one embodiment, the databasecollection 230 includes a customer database 232, a cruise line database234, an activity database 236, an agent database 238. It is recognizedthat the information stored in the database collection 230 may bediscretely stored in multiple independent databases, combined in asingle database, or a combination thereof.

[0054] In one embodiment, the pricing options and price matrices may beused as part of a cruise sailing and booking system wherein the userchooses at least two pricing options and views the correspondingdetailed pricing information in a set of price matrices. These pricematrices represent various pricing schemes of the various cruise linesand their cruise sailings. For example, the user may select specificcruise sailings from the list of available cruise lines. Next, the useris presented with pricing options that correspond to the selectedsailing. The user may then select a set of pricing options. The user isthen presented with a price matrix that includes information pertainingto the selected pricing options. From the price matrix, the user mayview cruise package and pricing information for selected categories in aside-by-side comparison, also known as the compare display.

[0055] In one embodiment, the agents and/or customers interact withcomputers to access the cruise selling and booking system 110 viacommunication mediums 120.

A. Communication Mediums

[0056] The communication mediums 120 as shown in FIGS. 2A and 2B includethe Internet 125. The Internet 125 is a global network of interconnectedcomputers capable of sending and receiving information between oneanother. The structure of the Internet 125, which is well known to thoseof ordinary skill in the art, includes a network backbone comprisingcommunications channels such as copper wire, optical fiber, or satellitebased interconnections between numerous computers, hubs, and routerswhich control, direct, and maintain information passed betweencomputers. Additional networks branch from the above-mentioned backbone,and these branches, in turn, have sub-networks branching from them, andso on. Typically, information is passed through the network in the formof packets which are discrete pieces the information desirably sentthrough the network. These packets of information are encoded in a forminterpretable by the network infrastructure and may support featuressuch as data compression, encryption, and error correction to optimizethe speed and efficiency by which the information is transferred. For amore detailed description of the structure and operation of the Internet125, please refer to “The Internet Complete Reference,” by Harley Hahnand Rick Stout, published by McGraw-Hill, 1994.

[0057] One popular segment of the Internet 125 is the World Wide Web (orWeb). The World Wide Web comprises many thousands of computers whichutilize the Internet 125 infrastructure to serve and distributeinformation. Typically, a server system is capable of two-waycommunication with other computers and can desirably send information toother computers which request the information or content stored on theserver system. The information stored on the server system is typicallyinterpreted using a software package known as a browser, which iscapable of displaying graphical, textual, audio and/or visualinformation.

[0058] Some of the server systems, which provide information on theWorld Wide Web, are often referred to as “websites” and interact withother computers on the World Wide Web. Generally, each website has anassociated electronic page or series of electronic pages which theserver sends to those computers requesting the information. Therequested information generally takes the form of an electronic page (orweb page) encoded in one or more specific languages that is interpretedby the requesting computer and the browser which it runs. Several suchlanguages commonly used by web servers include, but are not limited to,Hypertext Markup Language (“HTML”), JAVA, JAVA Script, Extensible MarkupLanguage (“XML”), Active Server Pages (“ASP”), and CGI scripting. Theweb page provides the requesting computer with a document that organizesthe presentation of the information into a display using text, graphicalimages, audio, and/or video. Furthermore, the computer, on which theonline document is viewed, may communicate with the website by sendingand receiving information through interface objects such as, forexample, fields, buttons, pull down menus, and key entered commands. Fora more detailed description on the World Wide Web, please refer to “Howto Set Up and Maintain a World Wide Web Site” by Lincoln D. Stein,published by Addison-Wesley Publishing Company, 1995.

[0059] One of ordinary skill in the art will recognize that thecommunication mediums 120 may be advantageously be comprised of one ormore types of networks without detracting from the invention. Thecommunication mediums 120 may include, by way of example, local areanetworks (“LANs”), wide area networks (“WANs”), public internets,private internets, a private computer network, a secure internet, aprivate network, a public network, a value-added network, interactivetelevision networks, wireless data transmission networks, two-way cablenetworks, interactive kiosk networks, digital subscriber lines, cablemodem lines, and the like. The disclosed invention is thus suitable forproviding connectivity through many different forms of communicationmediums 120, however, it will be further discussed in the context ofconnecting through the Internet 125. In addition, it is recognized thatone or more networks may be used to access the cruise selling andbooking system 110. For example, a customer may interact with the cruiseselling and booking system 110 via the Internet 125, an agent mayinteract with the cruise selling and booking system 110 via a LAN,and/or the cruise lines may interact with the cruise selling and bookingsystem 110 via a wireless data transmission network. In anotherembodiment, the customers, agents, and cruise lines may all access thecruise selling and booking system 110 via the Internet 125.

B. User Computer

[0060] The agent computer 240 and/or customer computer 250 (“usercomputers 240, 250”) shown in FIGS. 2A and 2B are devices that allow thecustomer or agent to interact with cruise selling and booking system 110via the communication mediums 120. In one embodiment, the user computer240, 250 is a conventional personal computer equipped with a modem,Ethernet card, or other component which allows the computer to send andreceive information through the communication mediums 120. Preferably,the user computer 240, 250 runs an appropriate operating system such asthe Microsoft® Windows® 3.1, Microsoft(t Windows® 98, Microsoft®Windows® 98 Second Edition®, Microsoft® Windows® Millennium Edition®,Microsoft® Windows® NT, Microsoft® Windows® 2000, Microsoft® Windows®CE, PalmOS®, Apple® MacOS®, Linux®, Solaris®, IRIX®, UNIX®, or IBM®OS/2® operating systems. As is conventional, a preferred operatingsystem further includes a TCP/IP stack or other communications protocolwhich handles all incoming and outgoing message traffic passed over thecommunication mediums 120.

[0061] In other embodiments, the user computer 240, 250 may, forexample, be a computer workstation, a local area network of individualcomputers, an interactive television, an interactive kiosk, a personaldigital assistant, an interactive wireless communications device,cellular phone, or the like which interacts with the communicationmediums 120. While in such systems, the operating systems may differ,the various operating systems may continue to provide the appropriatecommunication protocols needed to establish communication links with thecommunication mediums 120.

[0062] In one embodiment, the user computer 240, 250 utilizes severaloperational modules (not shown) including a customer or agent browsermodule. The browser module is a software program which allows a consumerto access different content providers through the communication mediums120. In one embodiment, the browser module is the Netscape® Navigatordeveloped by Netscape, Inc. or the Microsoft® Internet Explorerdeveloped by Microsoft Corporation. One of ordinary skill in the art,however, will recognize that numerous other types of access software mayalso be used to implement an embodiment of the present invention. Theseother types of access software may, for example, include other types ofInternet browsers, custom network browsers, two-way communicationssoftware, cable modem software, point-to-point software, and the like.

[0063] While the agent computer 240 and customer computer 250 arereferred to as user computers 240, 250, it is recognized that the agentcomputer 240 and the customer computer 250 may be implemented usingdifferent or the same hardware and/or software.

C. Cruise Selling and Booking System

[0064] In one embodiment, the cruise selling and booking system 110includes a server component 210, a cruise selling and booking component220, and a database collection 230 as illustrated in FIG. 3A.

[0065] As used herein, the words component and module refer to logicembodied in hardware or firmware or to a collection of softwareinstructions, possibly having entry and exit points, written in aprogramming language, such as, for example, C++, VISUAL BASIC, JAVA, C,FORTRAN, JAVA Script, and so forth. A software component/module may becompiled and linked into an executable program, or installed in adynamic link library, or may be written in an interpretive language suchas BASIC. It will be appreciated that software components/modules may becallable from other components or from themselves, and/or may be invokedin response to detected events or interrupts. Software instructions maybe embedded in firmware, such as an EPROM. It will be furtherappreciated that hardware components/modules may be comprised ofconnected logic units, such as gates and flip-flops, and/or may becomprised of programmable units, such as programmable gate arrays orprocessors. The components described herein are preferably implementedas software components/modules, but may be represented in hardware orfirmware.

1. Server Component

[0066] In one embodiment, the cruise selling and booking system 110includes a server component 210, as shown in FIG. 3A, that interactswith the cruise selling and booking component 220 and with the usercomputers 240, 250 via the communication mediums 120. The servercomponent 210 may be configured to process messages from the usercomputer, to send requests to the cruise selling and booking component220, and to send response messages to the user computer.

[0067] In one embodiment, the server component 210 is implemented as aweb server which serves content over the Internet 125 using languagessuch as, the Hyper Text Markup Language (“HTML”). The web server mayaccept requests from browsers, such as, for example, the Netscape®Navigator or the Microsoft® Internet Explorer, and return the requesteddocument(s) to the browsers. The web server may also utilize scriptingprograms, such as, for example, CGI scripts, SSL security, and ActiveServer Pages (“ASP”) to provide additional functionality. A wide varietyof web servers may be used to implement the server component 210, suchas, for example, AOLserver, the Apache server, the iServer, MicrosoftIIS v5.0 server, Microsoft Site server, Netscape Enterprise server,WebSite Pro server, Xitami server, and so forth. Furthermore, the servercomponent 210 may also be implemented using a variety of other servers,such as, for example, the BlueStone Sapphire server, the Interop server,a Netscape Server, an Oracle server, a SilverStream server, the SybaseEnterprise Server, the WebObjects server, and so forth. In addition, theserver component 210 may be implemented using a variety of computersystems, such as, for example, a conventional general purpose computerusing one or more microprocessors, such as, for example, a Pentiumprocessor, a Pentium II processor, a Pentium Pro processor, an xx86processor, an 8051 processor, a MIPS processor, a Power PC processor, oran Alpha processor, running a variety of platforms, such as, forexample, Mac OS, OpenLinux, Red Hat Linux, Sun Solaris, SGI IRIX, NovelNetWare, Windows NT Server 4.0, and/or Windows 2000 Server.

2. Cruise Selling and Booking Component

[0068] In one embodiment, the cruise selling and booking system 110includes a cruise selling and booking component 220, as shown in FIG.3A, that interacts with the server component 210 and the databasecollection 230. In other embodiments, it is recognized that the cruiseselling and booking component 220 may also interact with externalsources, such as, for example, proprietary cruise line systems,banking/financial systems, other travel agencies, external databases,and so forth. In one embodiment, the cruise selling and bookingcomponent 220 processes search requests from the server component 210,queries the database collection 230 and/or external sources forrequested information, receives the query results from the varioussources, processes the results, compiles the results into a set of data,and formats the results for presentation to the user via the servercomponent 210.

[0069] The exemplary cruise selling and booking component 220 of FIG. 3Aincludes a cruise selling and booking process 310, a customer module320, a cruise module 330, and a booking module 340. The cruise sellingand booking process 310 guides the user through searching for cruisepackages and booking a selected package. The exemplary customer module320 includes a customer add process 322 that adds new customers to thecustomer database 232, a customer search process 324 that queries thecustomer database 232, and a customer update process 326 that updates anexisting customer's information. The exemplary cruise module 330includes a cruise information add process 332 that adds informationabout the cruise lines, the cruise ships, the cruise sailings, and/orthe cruise packages to the cruise database, a cruise search process 334that queries the cruise database, a cruise qualification process 336that receives a set of cruise preferences and finds cruise sailingand/or cruise price information that matches the set of cruisepreferences, and a cruise comparison process 338 that receivesidentifiers for multiple cruise sailings or packages and returnsdetailed information about the identified objects in a comparisonformat. The exemplary booking module 340 includes a cruise bookingprocess 342 that receives cruise reservation/booking information andbooks the corresponding cruise package, and a cruise payment process 344that receives cruise payment information and forwards the paymentinformation to the appropriate entity.

[0070] An additional embodiment of a cruise selling and bookingcomponent 220 is illustrated in FIG. 3B. In addition to the customermodule 320, the cruise module 330, and the booking module 340, thecruise selling and booking component 220 also includes an agentownership module 350 configured to track and manage agent of recordrelationships, a customer qualification module 360 configured to match acustomer's preferences with a variety of cruise package options, a pricecomparison module 370 configured to present the user with pricingoptions and to provide price matrices of detailed pricing information,and a comparison module 380 configured to provide side-by-sidecomparisons of various cruise package and pricing information.

[0071] It is recognized that in other embodiments, the cruise sellingand booking component 220 may include other processes (not shown) thatprovide information from the database collection 230 as well as otherexternal sources.

[0072] The cruise selling and booking component 220 may be implementedusing a variety of software and hardware components. For example, thecruise selling and booking component 220 may include a set of electronicpage documents that are written in HTML code, ASP scripts, and so forth.As is well known in the art, standard HTML documents are web documentswherein the structure and layout are defined by a variety of tags andattributes and are capable of being read by standard browsers. ActiveServer Pages (“ASP”) is a server-based, script language developed byMicrosoft Corporation that allows for the dynamic generation of HTMLcode via server and client program scripts. Rather than maintainseparate script programs and electronic page documents, the scriptprograms may be embedded in the active server pages to form a set of“smart” electronic page documents. As is well known in the art, ASPdocuments do not need to be compiled, they can run on any browser, andmay allow the transfer of information from the database collection 230.For a more detailed description of Active Server Pages, please refer to“ASP in a Nutshell: A Desktop Quick Reference,” by A. Keyton Weissinger,published by O'Reilly & Associates, Inc., 1999.

[0073] In addition, the cruise selling and booking component 220 mayinclude additional software modules programmed in variety of languagesfor processing user requests, performing data lookup, compiling sets ofdata, formatting data, and so forth.

[0074] In one embodiment, the cruise selling and booking component 220is implemented on the same component as the server component 210, thoughit is recognized that in other embodiments, the cruise selling andbooking component 220 may be implemented in a separate component. Formore information on the types of computers and/or platforms that may beused to implement the cruise selling and booking component 220, pleasesee the section above entitled “Server Component.”

3. Database Collection

[0075] In one embodiment, the cruise selling and booking system 110includes a database collection 230, as shown in FIGS. 3A and 3B, thatstores data about the customers, the cruises lines, the activities, andthe agents. The exemplary database collection 230 includes fourdatabases, a customer database 232, a cruise line database 234, anactivity database 236, and an agent database 238.

[0076] The customer database 232 includes information about thecustomers. Such information may include name, address, phone number,cruise history, cabin preference, family information, age, traveldestination preference, as well as other travel-related information.

[0077] The cruise line database 234 may include information aboutvarious cruise lines, various cruise ships, and various cruise sailings.The information about specific sailings may further include informationsuch as ship name, number, sailing destination, departure dates, numberof cabins, cabin categories, dining room capacity, viewable maps of theship, as well as other detailed cruise line information. In addition,the cruise line database 234 may include information such as cabinavailability and pricing data. In one embodiment, the cruise linedatabase 234 data may be entered manually by a travel agent ordownloaded/received from the cruise lines and/or other sources.

[0078] In one embodiment, the cruise line database 234 enablesinformation about the various cruise lines to be stored in a singledatabase or database collection. The cruise lines have a myriad of datathat is organized differently according to each cruise line. Forexample, the cruise lines tend to use their own proprietary naming andpricing schemes; they individually select how the data is selected,stored, and configured; and some cruise lines may provide data thatother cruise lines do not. For example, many cruise lines use their ownsystem for categorizing cabins and have also use their own pricingschemes.

[0079] In some embodiments, the cruise line database 234 may normalizeall of the data from the various cruise lines into a uniform system. Inother embodiments, the cruise line database 234 may be configured toaccommodate a wide variety of data. For example, the cruise linedatabase 234 may include a table of categories in which each cruise linemay have its own unique set of categories ranked from most luxurious tomost economical thus maintaining the individuality of each cruise linewhile at the same time enabling the various cruise line data to becompared. The cruise line database 234 may, for example, provide pricinginformation for the most luxurious cabins for cruise sailings on CruiseLine A and Cruise Line B even though the cruise lines use differentcabin naming nomenclature and different category structures.

[0080] The activity database 236 includes information about theactivities in the cruise selling and booking system 110. Theseactivities may include brochures, leads, quotes, reservations, bookings,as well as other ongoing activity information. In one embodiment, theactivity database 236 is closely linked with the customer database 232,the cruise line database 234, and the agent database 238.

[0081] The agent database 238 includes information about the agents thatuse the cruise selling and booking system 110. Agent information mayinclude the agents' logins, passwords, access privileges, company,address, phone numbers, booking history, current commission, and soforth.

[0082] While the database collection 230 depicted in FIGS. 3A and 3Bincludes four separate databases, it is recognized that in otherembodiments, the database collection 230 may include other databasesand/or some of the exemplary databases may be combined.

[0083] In one embodiment, the database collection 230 may be implementedwith Structured Query Language (“SQL”) code. The structured querylanguage is a language standardized by the International StandardsOrganization (“ISO”) for defining, updating, and querying a relationaldatabase. It is recognized however, that other code may be used toaccess the database collection 230. For example, in one embodiment, thedatabase collection 230 may interact with various accessory programs tostore, retrieve, and process the information of the databases, such as,for example, dynamic link libraries (“DLLs”). DLLs (not shown) mayinteract with the server component 210, the cruise selling and bookingcomponent 220, and the database collection 230 directly, or with thedatabase collection 230 via a database manipulation module, such as, forexample, a Microsoft Database Access Object (“DAO”). The execution ofthe DLL may be called automatically from within the scripts or routinesof the web page documents as needed and may not necessarily require thecustomer or agent explicitly launch a separate program or series ofprograms.

[0084] In one embodiment, the database collection 230 is implementedusing a relational database, such as, for example, those sold by OracleCorp. or Sybase. It is recognized however that other relationaldatabases may be used and/or other types of databases may be used, suchas, for example, object oriented databases, flat file databases, and soforth. Furthermore, the database collection 230 may be implemented as asingle database with separate tables or as other data structures thatare well know in the art such as linked lists, binary trees, and soforth.

[0085] In one embodiment, the database collection 230 is implemented asa separate component or separate components from the cruise selling andbooking component 220 and/or the server component 210, though it isrecognized that in other embodiments, the database collection 230 may beimplemented on the same component as the cruise selling and bookingcomponent 220 and/or the server component 210. For more information onthe types of computers and/or platforms that may be used to run thedatabase collection 230, please see the section above entitled “ServerComponent.”

[0086] As noted above, one embodiment that is implemented using a webserver (“web server environment”) provides several advantages. First,the web server environment does not require any dedicated hardware orsoftware to be installed on the customer or agents computer which willutilize the cruise selling and booking system 110. This advantage mayapply to both customers and agents in that they do not have the burdenof expense normally associated with purchasing or licensing a dedicatedsystem. Second, maintenance and upgrades of the cruise selling andbooking system 110 may be centrally administrated and automaticallyprocessed with little or no intervention by those using the cruiseselling and booking system 110. For example, the cruise line database234 may be updated without the customer's knowledge. In addition, eachcomputer which connects to the cruise selling and booking system 110automatically receives and connects with the most appropriate softwareas determined by the web server of the cruise selling and booking system110. In addition, the interactive interface of the cruise selling andbooking system 110, like many interactive web pages, uses the familiarenvironment of a web browser running on the computer the customer oragent uses, thus, minimizing the learning time required to operate andbecome proficient with the cruise selling and booking system 110.

[0087] A detailed description of embodiments of a cruise selling andbooking system 110 is disclosed in a concurrently filed applicationhaving the title “SYSTEMS AND METHODS OF ON-LINE BOOKING OF CRUISES,”internal reference number TRAVL.002A, which is incorporated herein byreference. A detailed description of embodiments of a compare display isdisclosed in a concurrently filed application having the title “SYSTEMSAND METHODS OF COMPARING PRODUCT INFORMATION,” internal reference numberTRAVL.017A, which is incorporated herein by reference. A detaileddescription of one embodiments of managing agent ownership is disclosedin a concurrently filed application having the title “SYSTEMS ANDMETHODS OF MAINTAINING CLIENT RELATIONSHIPS,” internal reference numberTRAVL.019A, which is incorporated herein by reference. A detaileddescription of embodiments of qualification is disclosed in aconcurrently filed application having the title “SYSTEMS AND METHODS OFMATCHING CUSTOMER PREFERENCES WITH AVAILABLE OPTIONS,” internalreference number TRAVL.020A, which is incorporated herein by reference.

III. Price Comparison Module

[0088] In one embodiment, the cruise selling and booking system 110includes a price comparison module 370 used to present the user withavailable pricing options and to provide price matrices of real-time,detailed pricing and availability information.

[0089]FIG. 4 illustrates one embodiment of a price comparison module 370which includes a pricing options selection process 410 and a pricematrix process 420. For more information on the price comparisonprocesses, please refer to the section below entitled “Price ComparisonProcesses.” In one embodiment the price comparison module 370 may beimplemented as part of the cruise selling and booking component 220 andmay interact with the server component 210 and the database collection230.

[0090] In one embodiment, the price comparison module 370 may utilizeseveral resources to find available pricing options as well as pricinginformation. For example, the price comparison module 370 may query thedatabase collection 230 for customer information stored in the customerdatabase 232, such as, for example, number of passenger, age ofpassengers, home gateway city, past destinations, credit approval, andso forth. The customer information may be used to qualify each customerfor various steps in the process of purchasing a cruise. In addition,the price comparison module 370 may also query the database collection230 for cruise line information stored in the cruise line database 234,such as, detailed information about the cruise lines, the cruise ships,as well as category information and pricing information. The pricecomparison module 370 may also query outside sources, such as, forexample external databases, cruise lines, travel agencies, and so forth.For example, the price comparison module 370 may query a cruise line todetermine which pricing options are currently available for the selectedsailing. In one embodiment, the price comparison module 370 may queryanother source to obtain real-time pricing and availability data as wellas the database collection 230 for static data and use both sets of datato present the user with rate options and/or price matrices. Forexample, the price comparison module 370 may query a cruise line or acruise line interface system 130 to determine whether there are anyavailable cabins for the selected sailing and to request real-timepricing information for the cabins.

[0091] In one embodiment, the database collection 230 may be storedlocally and content may be updated to a remote server on a periodicbasis. In other embodiments, the information entered by the user may betransferred across a communication medium to a centralized database. Thedatabase collection 230 may be accessed by certain function callsenabling the agent to gather information through a standard webinterface. The database calls may be standardized to permit web pagerequests to remotely access cruise provider databases without errors.

[0092] In one embodiment, the price comparison module 370 is implementedto provide the user with a selection of pricing options and a matrix ofpricing information. In one embodiment, the price matrix displaysvarious pricing information for the categories of cabins that areavailable on the selected cruise ship sailing. The price comparisonmodule 370 may be implemented using one or more of a variety oftechnologies such as, C++, VISUAL BASIC, JAVA, JAVA Script, ActiveServer Pages (“ASP”), Extensible Markup Language (“XML”), as well asother scripting languages that may be used to dynamically retrieve,generate, process, and/or format the data for a web document.

[0093] As used herein, the word module refers to logic embodied inhardware or firmware, or to a collection of software instructions,possibly having entry and exit points, written in a programminglanguage, such as, for example, C++. A software module may be compiledand linked into an executable program, or installed in a dynamic linklibrary, or may be written in an interpretive language such as BASIC. Itwill be appreciated that software modules may be callable from othermodules or from themselves, and/or may be invoked in response todetected events or interrupts. Software instructions may be embedded infirmware, such as an EPROM. It will be further appreciated that hardwaremodules may be comprised of connected logic units, such as gates andflip-flops, and/or may be comprised of programmable units, such asprogrammable gate arrays or processors. The modules described herein arepreferably implemented as software modules, but may be represented inhardware or firmware.

IV. Price Comparison Displays

[0094]FIGS. 5, 6, 7, and 8 illustrate embodiments of price comparisondisplays that includes a cruise detail web page 510 with a “Select ACruise” section 520 and a “Cruise Detail” section 530. FIG. 5illustrates a pricing options display. FIG. 6 illustrates a comparedisplay for which two cruise packages have been selected.

A. Pricing Options Display

[0095] One embodiment of a pricing options display 540 is illustrated inFIG. 5 wherein the user has selected to view a set of available pricingoptions for the Princes Dawn Princess cruise sailing which departs onSep. 8, 2001. The exemplary display 540 includes a title bar 541designating the cruise line, the cruise ship, the departure date, aswell as a tag (“07SC3”) that corresponds to the call that was assignedto the database search. The exemplary display 540 uses a table format todisplay the pricing options with heading descriptions at the top of thetable such that each row includes information that corresponds to anindividual pricing option. The exemplary headings are identified as“Rate Code” 542, “Rate Name” 543, “Start Date” 544, “End Date” 545, and“Status” 546.

[0096] The rate codes 542 identify various pricing options for thecruise sailing and in one embodiment may be presented based upon theiravailability. For example, once a pricing option has expired or has beenexhausted, the pricing option may not appear in the display. The ratecode 542 may be determined by the cruise selling and booking system 110,the cruise lines, the travel agents, and/or a combination of the above.The rate names 543 designate the name of the pricing option and mayprovide additional information about each option such as for example,whether the code may be used in conjunction with air fare or whether itonly applies to cruises. The start dates 544 and end dates 545 representtimes for which the pricing options are available signifying when thepromotion ends and/or how long the specific option has been inexistence. The status 546 signifies whether a pricing option hasexpired. In one embodiment, if the pricing option is available, thestatus 546 is OPEN, whereas if the pricing option has expired, thestatus 546 is marked as CLOSED. In one embodiment, the pricing optionsdisplay 540 filters out pricing options that are of the CLOSED status.

[0097] In one embodiment, the pricing option display 540 may alsoinclude an expandable field 547 for displaying additional informationincluding rules that may apply for a specific rate code. Thisinformation may be displayed or hidden underneath the rate code byclicking on the right arrow 548, which becomes a down arrow to representthe expanded field. The user may also select the checkbox 549 located tothe left of each rate code to include the pricing option in a pricematrix. The pricing option display 540 may also include an input field550 at the top of the display enabling an agent to enter manually aknown rate code. Manual entry may be useful in situations where a useris working with a special promotion that may not be part of the system,a new promotion that has not yet been added to the system, and/or commonpromotions with which the user is familiar.

[0098] For example, rate code BNPTPXUSD represents the best availablepast passenger rate that does not include air prices. The BNPTPXUSDoption was available beginning on Oct. 12, 1998 and ends on Mar. 28,2001. The expanded field 547 includes information about BNPTPXUSDstating that the passenger must have booked a cruise within the last twoyears to qualify for this rate code 542. Furthermore, the checkmark inthe checkbox 549 indicates that the rate code 542 has been selected as apricing option for the price matrix.

[0099] It is recognized that in other embodiments, the pricing optionsdisplay 540 may include different sets of data and/or some of the datamay be excluded from the display. For example, in one embodiment, theuser may not be presented with the input 550 field. Furthermore, inother embodiments, the pricing options display 540 may limit the numberof pricing options that a user may select to a predetermined number,such as, for example, three or four.

B. Price Matrix Display

[0100] One embodiment of a price matrix display 610 is illustrated inFIG. 6 wherein the user has selected the Princes Dawn Princess cruisesailing which departs on Sep. 9, 2001. The exemplary price matrixdisplay 610 includes a price matrix section 620 and a button section630.

1. Price Matrix Section

[0101] The exemplary price matrix section 620 displays the real-timepricing information for the selected pricing options and, in oneembodiment, may include pricing information for pricing options that arealways included, such as, for example, a promotional price, best TRAVLprice, best price, and so forth. The price matrix displays the pricinginformation in table format with heading descriptions at the top of thetable such that each row includes information that corresponds to anindividual pricing category. The exemplary headings are identified as“Cat” 621, “Type” 622, “GG/Promo” 623, “TRAVL Block” 624, “BF” 625, andso forth.

[0102] The “Cat” column 621 represents the category code for thedescription of the accommodations. The category code may be determinedby the cruise selling and booking system 110, the cruise lines, thetravel agents, and/or a combination of the above. Furthermore, thecategory codes may be different for various cruise lines and may vary inpresentation. The “Type” column 622 represents the type of category,such as, for example, suite, single room, double room, outside cabin,inside cabin, and so forth. The next columns 623, 624, 625 represent thevarious pricing or rate options. In one embodiment, each pricing or rateoption column 623, 624, 625 may be further segmented into sub-columns topresent the costs for double occupancy, single occupancy, sharedoccupancy, third person of a triple occupancy, fourth person for aquadruple occupancy, as well as other information, such as availability,options, and/or upgrades. The upgrade column may be populated if anupgrade is available either by special promotion or as an opportunityfor an upgrade based on group rates.

[0103] In the exemplary price matrix, the BB/Promo price 623 includesthe port charges and displays a promotional rate price. The “TRAVLBlock” 624 displays prices that the travel agency may offer. In someinstances, a travel agency or group may purchase or hold a block ofcabins at a discounted price and may pass the discount onto thecustomers. The “BF” price 625 is the best price which may be retrievedfrom the system and/or calculated in real time by taking the lowestprice of all of the available pricing options or one or more subsets ofthe available pricing options. Pricing information for other selectedpricing options may also be displayed.

[0104] The exemplary cruise ship, the Princess Dawn Princess includesseveral categories, 12, 6D, 6C, 6B, 6A, 5A, and so forth. In oneembodiment, the categories are sorted from most expensive to leastexpensive, though in other embodiments, other sorting methods may beused. In addition, if pricing information is not available, or if thereis no availability for a particular category, the price matrix maydisplay “N/A,” designating not applicable. In other embodiments, thecategory may be removed from the price matrix, and/or the availabilityof a particular category may be checked at a later time.

[0105] In one embodiment, the price matrix section 620 includes a columnof checkboxes 626 located to the left of each “Cat” column. Thecheckboxes 626 enable the user to select from the set of categories asubset of categories to view in a “Show Selected” matrix discussedbelow. Furthermore, the price matrix section 620 includes a column ofarrows 627 next to the checkboxes that enable the user to open a windowthat will display the details regarding the category such as detaileddescriptions of the categories and the associated amenities. Forexample, for category 12, the additional information may state that 12is a suite on the promenade deck. Such information may be useful as manycruise lines use their own set of categories. The price matrix alsoincludes a column of arrows 628 within each pricing option column thatenables the user to display the selected the pricing option and categoryin the compare display.

2. Button Section

[0106] In one embodiment, the price matrix may also include a buttonsection 630 that enables a user to revise and/or refine the pricinginformation. For example, the price matrix defaults to providinginformation for cabins based on a two person per cabin booking. Bysubmitting a different number and selecting the “Modify Pax” button 631,the user may request pricing information for other numbers of personsper cabin.

[0107] The “Show Selected” button 632 works in conjunction with thecheck boxes located to the left of the price matrix rows. The user mayselect one or more of the categories for display and then select the“Show Selected” button to limit the price matrix to only the selectedcategories in a “Show Selected” matrix. The “Show Selected” button thenchanges to a “Show All” so that the user may return to the set of allcategories. In one embodiment, the default view includes all of thecategories for the selected cruise sailing, though it is recognized thatother defaults may be used.

[0108] The “Best Price” button 633 permits the user to view a Best Pricematrix wherein the best prices are displayed in a matrix. Furthermore,the “Air/Sea” button 634 permits the user to view an Air/Sea pricematrix detailing price information that includes airfare. If the “BestPrice” button is selected, the “Best Price” button then changes to a“Detail” button enabling the user to return to the price matrix.Furthermore, if the “Air/Sea” button 634 is selected, the “Air/Sea”button 634 then changes to the “Detail” button enabling the user toreturn to the price matrix. For more information on the “Best Price”matrix, please refer to the section below entitled “Best Price” matrix.For more information on the “Air/Sea” price matrix, please refer to thesection below entitled “Air/Sea Price Matrix.”

[0109] The “Deck” button 635 displays a pop-up window illustrating thecruise ship's key locations as well as the specific locations of cabinson every level of the ship. To close the window, the user may select the“Close” button. In one embodiment, the “Deck” button is inactive if thecruise ship's information is not available.

[0110] The “Rate Options” button 636 returns to the pricing optionsdisplay 520 discussed above. These buttons enable the user to switchbetween a variety of price matrices permitting accurate comparisons ofpricing information.

[0111] In one embodiment, the user may select another cruise to viewpricing information on a different cruise sailing.

C. Best Price Matrix

[0112] The Best Price matrix 710 displays a subset of the availablepricing information wherein only the “best prices” are presented forvarious categories as illustrated in FIG. 7. Similar to the price matrixdisplay 610, the Best Price matrix 710 includes a “Cat” column 711, and“Upg” column 712, and a “Type” column 713. In addition, the Best Pricematrix 710 includes columns representing the best price for various setsof options. For example, in FIG. 7, the best prices for the Promotionrate 714, the full individual tariff (“FIT”) price 715, and the bestTRAVL price 716 are displayed. In one embodiment, the FIT pricerepresents the best price for the selected rate options and pricingcategories wherein the price comparison module 370 finds the prices forthe selected rate options for the categories, determines the bestprices, and displays the best price. The Best Price matrix may alsoinclude a best price description column 717 which presents the user withinformation on the pricing option that was used to find the best prices.

[0113] In one embodiment, the best prices are by default based upondouble occupancy, though the user may change the number of persons percabin. Furthermore, in other embodiments, other default values may beused. In one embodiment, the Promotion column 714 may be populated withpricing information if there is a special theme cruise that has beenplanned or if there is any other promotion offered by the cruise lines.The FIT price 715 represents the best price for the selected rateoptions and pricing categories. The Best TRVL price 716 represents thebest price an agent can offer which may be affected by negotiated dealsbetween agencies and cruise line carriers. In many cases, it isbeneficial for the agent to see the multiple pricing options as toafford the customer an upgraded room category at a lesser price while atthe same time maximizing commission. The last category 717 identifiesthe description of the best price.

[0114] In one embodiment, the Best Price matrix 710 may be presented tothe user as the default view as it provides the user with a concisesummary of the best prices that may be offered to the user. In otherembodiments, however, other price matrices may be used as the default.For example, if the travel agency has an agreement with an airline, theAir/Sea price matrix may be used as the default to help encourageairfare sales.

[0115] For a discussion of the buttons used with the Best Price matrix710 see the section above entitled “Price Matrix Display—ButtonSection.”

D. Air/Sea Price Matrix

[0116] The “Air/Sea” price matrix 810 displays pricing information thatincludes airfare from a gateway city as illustrated in FIG. 8. Duringthe cruise selling and booking process 310, the user may select agateway city 811 from which the customer will depart. In one embodiment,the gateway city 811 represents the starting point for airlinetransportation rather than the port of departure. The user may then havethe option of manually requesting price quotes for airline travel, usingthe cruise selling and booking system 110 to search for airfareinformation, or using another system to find airline itineraries andprices that suit the customer's needs.

V. Price Comparison Processes

[0117] In one embodiment, the price comparison module 370 includes apricing options selection process 410 and a price matrix process 420.

A. Pricing Options Selection Process

[0118] An overview of one embodiment of a pricing options selectionprocess 410 is shown in FIG. 9. Beginning at a start state (block 910),the pricing options selection process 410 transitions to the next state(block 920) and receives a selected sailing. The pricing optionsselection process 410 then retrieves a set of pricing options thatcorrespond to the selected sailing (block 930). The set of pricingoptions may be retrieved from an internal source and/or an externalsource. In addition, the set of pricing options may be based in part oncabin and/or pricing option availability. Next, the pricing optionsselection process 410 formats the set of pricing options and returnsthem to the user (block 940). The pricing options selection process 410then receives a set of selected pricing options, wherein the selectedpricing options is a subset of the set of pricing options (block 950)and proceeds to an end state (block 960).

[0119] It is recognized that other embodiments of a pricing optionsselection process 410 may be implemented. For example, the pricingoptions may be retrieved for each selected sailing after all sailingshave been selected.

B. Price Matrix Process

[0120] An overview of one embodiment of a price matrix process 420 isshown in FIG. 10. Beginning at a start state (block 1010), the pricematrix process 420 transitions to the next state (block 1020) andreceives a selected sailing and a set of selected pricing options. Inone embodiment, the price matrix process 420 may receive the selectedsailing and/or the set of selected pricing options from the pricingoptions selection process 410. Next, the price matrix process 420retrieves pricing information for the selected sailing (block 1030) andfilters information to the pricing information that corresponds to theset of selected pricing options (block 1040). The pricing informationmay be retrieved from an internal source and/or an external source. Inaddition, the pricing information may include real-time pricing andavailability data. The price matrix process 420 formats the pricinginformation and sends it to the user (block 1050) proceeding to an endstate (block 1060).

[0121] It is recognized that other embodiments of a price matrix process420 may be implemented. For example, the price matrix process 420 mayalso filter the pricing information to include only the best prices fora set of categories. The set of categories may be retrieved from thedatabase collection 230 and/or may be received from the user.Furthermore, the price matrix process 420 may also add in airfareinformation and/or remove airfare information depending on how thepricing information is stored.

VI. Accessing the Pricing Options and the Price Matrices

[0122] In one embodiment the user may access the pricing options and theprice matrices throughout the cruise selling and booking process 310.Furthermore, in other embodiments, a user may access directly thepricing options and/or the price matrices using the price comparisonmodule 370.

A. Accessing the Pricing Options

[0123] In one embodiment, user may access the pricing options displayafter selecting specific cruise sailings from the cruise line carriers.When the user selects a cruise sailing, the price comparison module 370receives the user's selection and determines whether there are anypricing options available. This may include, for example, querying acruise line or a cruise line interface system 130 to determine theavailability of particular cabins and/or pricing options. In oneembodiment, the price comparison module 370 searches for any pricingoptions, while in other embodiments, the price comparison module 370 mayretrieve only those pricing options for which the user is qualified. Inother embodiments, the price comparison module 370 excludes pricingoptions for which the user does not qualify. If there no availablepricing options, then the user may be presented with a price matrix.Otherwise, if there are available pricing options, the pricing optionsdisplay may be presented to the user.

[0124] If there are available pricing options, the user may, in oneembodiment, select up to four pricing options for display in a pricematrix. These options may include, for example, best possible fare “BF,”resident pricing discount “PGR,” and/or a senior pricing “PGSR1.”

B. Accessing the Price Matrices

[0125] In one embodiment, the user may access the price matricesthroughout the cruise selling and booking system 110. For example, theuser may select pricing options in the pricing options display andselect the continue button to view a price matrix that corresponds tothe selected pricing options. In addition, the user may select thepreviously selected sailing thereby bypassing the pricing optionsdisplay and directly viewing a price matrix. Furthermore, within theOption Recap screen, the user may select the “Category Sailed” button.This selection will initiate a price matrix in the place of the OptionRecap screen and allow the user to include a new category in thespecific sailing.

VII. Conclusion

[0126] While certain embodiments of the invention have been described,these embodiments have been presented by way of example only, and arenot intended to limit the scope of the present invention. Accordingly,the breadth and scope of the present invention should be defined inaccordance with the following claims and their equivalents.

What is claimed is:
 1. A method of presenting cruise pricing informationfor display by a plurality of web browser programs, wherein the methodutilizes a cruise web server environment to electronically communicatevia a data communications network with a plurality of remote users usingthe web browser programs and the cruise pricing information includesreal-time pricing and availability data, the method comprising:receiving a selected cruise sailing from a remote user's web browserprogram; identifying rate options stored in an electronic cruise linedatabase that correspond to the selected cruise sailing; sending therate options to the remote user's web browser program; receiving a setof selected rate options from the remote user's web browser program;identifying cabin pricing categories stored in the electronic cruiseline database that correspond to the selected cruise sailing and the setof selected rate options; obtaining cruise price information from theelectronic cruise line database that corresponds to the cabin pricingcategories; and preparing cruise price information for display in aprice summary as part of an electronic document by the remote user's webbrowser.
 2. The method of claim 1, wherein the price summary isformatted as a matrix of cruise price information.
 3. A method offiltering cruise pricing information for display to a remote user's webbrowser program utilizing a cruise web server environment toelectronically communicate with a the remote user's web browser programvia a data communications network, the method comprising: receiving aselected cruise sailing from the remote user's web browser program;identifying rate options stored in an electronic database thatcorrespond to the selected cruise sailing; sending the rate options tothe remote user's web browser program for display as an electronicdocument; receiving a set of selected rate options from the remoteuser's web browser program; and using the set of selected rate optionsto retrieve pricing information from the electronic database thatcorresponds to the selected cruise sailing and to formulate a query thatfilters the pricing information based at least upon the selected rateoptions.
 4. A method of requesting cruise price information using a webbrowser program to electronically communicate with a remote cruise webserver system via a data communications network, wherein the cruiseprice information includes real-time pricing and availability data, themethod comprising: sending a first request for information on a cruisesailing to the remote cruise web server system; and receiving a pricematrix display of cruise price information corresponding to the cruisesailing from the remote cruise web server system, wherein the pricematrix display is displayed in the web browser program as an electronicdocument.
 5. A method of requesting cruise price information using a webbrowser program to electronically communicate with a remote cruise webserver system via a data communications network, the method comprising:sending a first request for information on a cruise sailing to theremote cruise web server system; receiving a set of rate optionscorresponding to the cruise sailing from the remote cruise web serversystem; sending a selection of rate options from the set of rateoptions; and receiving a price matrix display of cruise priceinformation corresponding to the cruise sailing from the remote cruiseweb server system, wherein the cruise price information corresponds tothe selection of rate options and the price matrix display is displayedin the web browser program as an electronic document.
 6. A method offiltering cruise price information using a web browser program toelectronically communicate with a remote cruise web server system via adata communications network, the method comprising: sending a firstrequest for information on a cruise sailing to the remote cruise webserver system; receiving a set of rate options corresponding to thecruise sailing from the remote cruise web server system, wherein the setof rate options are formatted for display as an electronic document bythe web browser program; selecting a selection of rate options from theset of rate options; and sending the selection of rate options to theremote cruise web server system.
 7. A method of using a computer toenable a remote user to compare cruise package pricing information froma cruise booking web server system, wherein the remote userelectronically communicates with the cruise booking web server systemusing a web browser program via a data communications network and atleast a portion of the cruise package pricing information includesreal-time pricing and availability data, the method comprising:receiving a request for cruise price information for at least twocruises from the remote user's web browser program; preparing the cruiseprice information for display in an electronic document that includes aprice summary matrix; and sending the price summary matrix to the remoteuser's web browser program.
 8. The method of claim 7, wherein theelectronic document is a web page document.
 9. In a network comprising auser node having a browser program coupled to the network, the user nodeproviding requests for information on the network, a network nodecomprising: a cruise booking node responsive to a request for cruiseprice information for at least two cruises from the user node whereinthe cruise booking node provides the user node with a price summary ofthe cruise price information.
 10. The network node of claim 9, whereinthe cruise booking node is configured to use rate options to filter thecruise price information of the price summary.
 11. The network node ofclaim 9, wherein the cruise booking node is configured to use selectedcategories to filter the cruise price information of the price summary.12. The method of claim 9, wherein the price summary includes aplurality of selectable price matrices.
 13. The network node of claim 9,further comprising a cruise line database configured to store cruisepackage and pricing information for at least two different cruise lines,wherein the cruise line database is in communication with the cruisebooking node.
 14. A system for displaying cruise price informationimplemented in a web server environment wherein a plurality of remoteusers communicate with the system via a data communications networkusing web browser programs, the system comprising: an electronicallystored data structure of cruise price information wherein the cruiseprice information includes information from different cruise lines; aprogram module configured to receive requests for cruise informationfrom a remote user's web browser program; a program module configured toobtain cruise price information from the electronically stored datastructure based at least upon a price summary request; a program moduleconfigured to prepare cruise price information for a display as a pricesummary in an electronic document; and a program module for outputtingthe prepared cruise price information to the remote user's web browserprogram.
 15. The system of claim 14, wherein the price summary is intable format.
 16. A method for analyzing cruise package pricing categoryinformation utilizing a cruise web server environment to electronicallycommunicate via a data communications network with a plurality of remoteusers using web browser programs, the method comprising: receiving a setof rate options from a remote user's web browser program; obtainingcruise package information relating to the set of rate options from anelectronic database of cruise pricing information; and outputting thecruise package information in a pricing table for display by the remoteuser's web browser program.
 17. In a network comprising a user nodehaving a browser program coupled to the network, the user node providingrequests for information on the network, a network node comprising: acruise booking node responsive to a request from the user node, whereinthe cruise booking node queries an electronic database of cruiseinformation for cruise package information that relates to a set of rateoptions received from said user node and forwards the cruise packageinformation to the user node.
 18. The network node of claim 17, whereinthe electronic database is a cruise line database configured to storerate options for at least two different cruise lines.
 19. A system foranalyzing cruise package information implemented in a web serverenvironment wherein a plurality of remote users utilize web browserprograms to electronically communicate with the system via a datacommunications network, the system comprising: an electronically storeddata structure of cruise price information wherein the cruise priceinformation includes information from different cruise lines; a programmodule configured to receive a set of rate options from a remote user'sweb browser program; a program module configured to obtain real-timecruise price information from the electronically stored data structure,wherein the obtained real-time cruise price information relates to theset of rate options; and a program module for outputting cruise packageinformation in a price summary for display by the remote user's webbrowser program.
 20. The system of claim 19, wherein the price summaryis in table format.
 21. A system for comparing cruise package pricingoptions implemented in a web server environment wherein a plurality ofremote users utilize web browser programs to electronically communicatewith the system via a data communications network, the systemcomprising: a cruise sailing selection software component configured toreceive a request for cruise pricing information for a selected sailingfrom a remote user's web browser program; a pricing options softwarecomponent configured to search for a set of pricing options thatcorrespond to the selected sailing in an electronic database of cruiseinformation, to send the set of pricing options to the remote user's webbrowser program, and to receive a set of selected pricing options fromthe remote user's web browser program; a pricing category softwarecomponent configured to search for cruise pricing information in theelectronic database of cruise information, wherein the cruise pricinginformation relates to the set of selected pricing options; and adisplay software component configured to process and format the cruisepricing information for display in a pricing matrix by the remote user'sweb browser program, wherein the pricing matrix is organized at least inpart by the pricing categories.
 22. A system for comparing cruisepackage pricing options implemented in conjunction with a web browserprogram, wherein the web browser program electronically communicateswith a remote cruise web server via a data communications network, thesystem comprising: a cruise sailing selection software componentconfigured to send requests for real-time cruise pricing information tothe remote cruise web server, wherein the real-time cruise pricinginformation is organized into pricing categories; a pricing optionsselection software component configured to send requests to the remotecruise web server for filtering the cruise pricing information based atleast upon a set of selected pricing options; and a display softwarecomponent configured to receive the requested filtered, real-time cruisepricing information from the remote cruise web server and to display thefiltered, real-time cruise pricing information using the web browserprogram in a pricing matrix, wherein the pricing matrix is organized atleast in part by the pricing categories.
 23. The system of claim 22,wherein the pricing options selection software component is furtherconfigured to receive a set of pricing options from the remote cruiseweb server, wherein the set of selected pricing options are selectedfrom the set of pricing options.
 24. A method of presenting cruisepricing information user's web browser program utilizing a cruise webserver environment to electronically communicate with a the remoteuser's web browser program via a data communications network, the methodcomprising: means for receiving a selected cruise sailing from a remoteuser's web browser program; means for identifying rate options stored inan electronic database that correspond to the selected cruise sailing;means for sending the rate options to the remote user's web browserprogram for display as an electronic document; means for receiving a setof selected rate options from the remote user's web browser program;means for identifying cabin pricing categories stored in the electronicdatabase that correspond to the selected cruise sailing and the set ofselected rate options; means for obtaining cruise price information fromthe electronic database that corresponds to the cabin pricingcategories; and means for preparing cruise price information for displayby the remote user's web browser program in price summary.
 25. A methodof requesting cruise price information using a web browser program toelectronically communicate with a remote cruise web server system via adata communications network, the method comprising: means for sending afirst request for information on a cruise sailing to the remote cruiseweb server system; means for receiving a set of rate optionscorresponding to the cruise sailing from the remote cruise web serversystem, wherein the set of rate options are formatted for display as anelectronic document by the web browser program; means for sending aselection of rate options from the set of rate options to the remotecruise web server; and means for receiving a price matrix display ofcruise price information corresponding to the cruise sailing from theremote cruise web server system, wherein the cruise price informationcorresponds to the selection of rate options.